class Student:
    name = None
    age = None
    grade = None

    __doc__ = "This is a class for students"
    __info = "This is a private class variable"

    def __init__(self, name, age, grade):
        self.name = name
        self.age = age
        self.grade = grade

    def get_name(self):
        return self.name

    def get_age(self):
        return self.age

    def get_grade(self):
        return self.grade

    def set_name(self, name):
        self.name = name

    def set_age(self, age):
        self.age = age

    def set_grade(self, grade):
        self.grade = grade

    def __doc_info(self):
        print(self.__doc__)

    def __str__(self):
        return f"Name: {self.name}, Age: {self.age}, Grade: {self.grade}"

    def __fun_info(self):
        """
        This is a private function for printing the private class variable
        成员变量和成员方法的命名均以_ _作为开头
        私有成员无法被类对象使用，但是可以被其它的成员使用。
        :return:
        """
        print(self.__info)
